////////////////////////////////////////////////////////////////////////////////
/// Midnight Circus 2007
////////////////////////////////////////////////////////////////////////////////

namespace GatherTogether
{
    /// <summary>
    /// Class to describe the contents of an entire Gatherer database. Your Gatherer
    /// database can be found in your World of Warcraft folder in the following location:
    ///   -> ...\World of Warcraft\WTF\Account\<user>\SavedVariables\Gatherer.lua
    /// </summary>
    class GatherDB
    {
        /// <summary>
        /// Contains information about the locations and frequencies of individual
        /// resource harvesting points.
        /// </summary>
        protected GatherItems.GatherItemsDB m_gatherItems = new GatherItems.GatherItemsDB();

        /// <summary>
        /// Contains information about the possible items aquired from resource harvests.
        /// </summary>
        protected GatherDrops.GatherDropsDB m_gatherDrops = new GatherDrops.GatherDropsDB();

        /// <summary>
        /// Contains information about item drop rates from different areas.
        /// </summary>
        protected GatherDropRates.GatherDropRatesDB m_gatherDropRates = new GatherDropRates.GatherDropRatesDB();

        /// <summary>
        /// Anything left from the lua file that was not part of GatherItems or GatherDrops
        /// TODO: this seems safe for now, but can we do any better?
        /// </summary>
        protected string m_gatherSettings = null;

        public GatherItems.GatherItemsDB Items
        {
            get { return m_gatherItems; }
        }

        public GatherDrops.GatherDropsDB Drops
        {
            get { return m_gatherDrops; }
        }

        public GatherDropRates.GatherDropRatesDB DropRates
        {
            get { return m_gatherDropRates; }
        }

        public string Settings
        {
            get { return m_gatherSettings; }
            set { m_gatherSettings = value; }
        }
    }
}
